// 这个是求两个数中最小值的函数，调用函数的时候需要传两个参数
function minNum(a, b) {
    var num = a > b ? b : a
    return num
}

// 这个是求两个数中最大值的函数，调用函数的时候需要传两个参数
function maxNum(a, b) {
    var num = a > b ? a : b
    return num
}

// 求任意多数最大值
function max() {
    // 假设第一个参数为最大的值
    var maxNum = arguments[0];
    // 遍历所有的实参
    for (var i = 0; i < arguments.length; i++) {
        // 把假设的最大值与所有实参比较，如果有一个值大于假设的最大值，就把这个值赋值给 maxNum
        if (maxNum < arguments[i]) {
            maxNum = arguments[i]
        }
    }
    return maxNum
}

function min() {
    // 假设第一个参数为最小的值
    var minNum = arguments[0];
    // 遍历所有的实参
    for (var i = 0; i < arguments.length; i++) {
        // 把假设的最小值与所有实参比较，如果有一个值小于假设的最小值，就把这个值赋值给 maxNum
        if (minNum > arguments[i]) {
            minNum = arguments[i]
        }
    }
    return minNum
}

// 任意两个数之间的随机数  调用函数的时候需要传两个数值的参数
function randomNum(n, m) {
    // 判断两个参数的大小
    var max, min;
    max = n > m ? n : m;
    min = n < m ? n : m;
    return parseInt(Math.random() * (max - min + 1) + min);

}

// 封装一个生成随机颜色的函数
function randomColor() {
    var red = randomNum(0, 255);
    var green = randomNum(0, 255);
    var blue = randomNum(0, 255);
    return 'rgb(' + red + ',' + green + ',' + blue + ')'
}

/*
    封装一个事件格式化的函数 2020-6-19 15:09:49 星期五
*/
function dates(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var dates = date.getDate();

    var h = date.getHours();
    // 判断h这个是是否值小于 10的值，比如h = 9,应该显示W为 09
    h = h >= 10 ? h : '0' + h;

    var m = date.getMinutes();
    m = m >= 10 ? m : '0' + m;

    var s = date.getSeconds();
    s = s >= 10 ? s : '0' + s;

    var day = date.getDay(); //0-6  0表示星期天

    var arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']

    // 把格式化号的 时间返回
    return year + '-' + month + '-' + dates + ' ' + h + ':' + m + ':' + s + '  ' + arr[day]
}

// 求两个时间的时间差
function chaTime(date1, date2, callback) {
    var time1 = date1.getTime(); //得到是 date1到格林威治时间的毫秒数
    var time2 = date2.getTime(); //得到是 date2到格林威治时间的毫秒数

    // 得到两个时间的时间差（毫秒数）
    var chaTime = Math.abs(time1 - time2);
    var day = parseInt(chaTime / 1000 / 60 / 60 / 24);

    var hours = parseInt((chaTime / 1000 / 60 / 60) % 24);
    var m = parseInt((chaTime / 1000 / 60) % 60);

    var s = parseInt((chaTime / 1000) % 60);

    // 固定 return ，获取时间差只能做一个功能，不能灵活的使用这个函数
    // return '两个相差' + day + '天' + hours + '小时' + m + '分' + s + '秒'

    // 利用回调函数 把 已经计算好的时间差 返回到 函数的外部，
    // callback 回调函数的形参
    // 因为 时间差 有天数，小时，分钟，秒数，单个参数传递的时候，函数的实参和形参
    // 可以利用对象的形式传递
    var obj = {
        day: day,
        hours: hours,
        minutes: m,
        seconds: s
    }
    callback(obj);
}